package com.bookcity.utils;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @Author: Trioutia
 * @Date: 2022/6/26 - 06 - 26 - 12:03
 * @Description: com.bookcity.utils
 * @version: 1.0
 */
public class UtilClass {

    //  得到一个类的所有父类(递归)
    public static List<Class> getSuperClasses(Class T){
        List<Class> res = new ArrayList<>();
        while (T!=null){
            res.add(T);
            T = T.getSuperclass();
        }
        return res;
    }

    //  得到一个类的所有实现接口
    public static Map<Class,List<Class>> getImplInterfaces(Class T , Map<Class,List<Class>> map){
        if (T != null) {
            //  多叉树先序遍历
            List<Class> infs = new ArrayList<>();
            for (Class inf : T.getInterfaces()) {
                infs.add(inf);
                map.put(T,infs);
                getImplInterfaces(inf, map);
            }
        }
        return map;
    }
}
